package sanrenxing.Paper.dao;

import sanrenxing.Paper.domain.Subject;

import java.util.ArrayList;
import java.util.List;

public interface SubjectDao {
    /**
     * 将实体对象添加到数据库subjects表中
     * @param subject 题库对象
     * @return 成功添加的行数(1:添加成功;0:添加失败)
     */
    public int add(Subject subject);

    /**
     * 根据主键从数据库subjects表中删除指定数据
     * @param subjectId 主键
     * @return 删除影响的行数(1:删除成功;0:删除失败)
     */
    public int delete(int subjectId);

    /**
     * 将题库对象数据修改到数据库subjects表中
     * @param subject 题库对象
     * @return 修改影响的行数(1:修改成功;0:修改失败)
     */
    public int update(Subject subject);

    /**
     * 根据题库编号主键从数据库subjects表中查找单个题目
     * @param subjectId 主键
     * @return 题库对象(如果返回null值，表示查找失败)
     */
    public Subject findById(String subjectId);

    /**
     * 查询数据库subjects表中所有题目
     * @return 题库对象集合
     */
    public List<Subject> findAll();

    /**
     * 从数据库subjects表中查询指定页的题库对象集合
     * @param rows 每页行数
     * @param pages 页数
     * @return 当前页的题库对象集合
     */
    public List<Subject> findByPage(int rows, int pages);

    /**
     * 统计数据库subjects表中记录总数
     * @return 题库表中记录总数
     */
    public int count();

    /**
     * 条件分页查询
     * @param rows 每页行数
     * @param pages 页数
     * @param condition 条件
     * @return 题库对象集合
     */
    public List<Subject> findByPage(int rows, int pages, String condition);

    /**
     * 条件统计
     * @param condition 条件
     * @return 题库数
     */
    public int count(String condition);

    /**
     * 获取查询条件
     * @param subject 题库对象
     * @return 条件字符串
     */
    public String getCondition(Subject subject);

    /**
     *
     * @return
     */
    public ArrayList<Subject> getSubjects(int courseId , String subjectType );

    public ArrayList<Subject> getSubjectss(int courseId, int hard, String subjectType);

}
